package main

import "fmt"

func adder() func(int) int {
	var x int
	return func(y int) int {
		x += y
		return x
	}
}

func main() {
	ret := adder()
	fmt.Println(ret(1)) // 输出 1
	ret2 := ret(2)
	fmt.Println(ret2) // 输出 3
	funcB()
	fmt.Println(f(5))

}

//panic函数
func funcB() {
	panic("Something bad happened") //程序崩溃退出
}

//递归 一定要有明确的退出条件

func f(n int) int {
	if n <= 0 {
		return 1
	}
	return n * f(n-1)
}
